package com.leorui.schoollife.controller

import org.springframework.web.multipart.MultipartFile

interface IFriendCircleControl {
    /**
     * 获取朋友圈, 分页进行拉取
     * @param account 拉取账号 (option) 如果有账号，拉取为个人拉取，没有则拉取所有信息
     * @param currentPage 当前页面
     * @param pageSize 每页大小
     */
    fun getAllFriendCircleList(account: String, currentPage: Int, pageSize: Int): Map<Any?, Any?>?

    /**
     * 获取个人朋友圈, 分页进行拉取
     * @param account 拉取账号 (option) 如果有账号，拉取为个人拉取，没有则拉取所有信息
     * @param currentPage 当前页面
     * @param pageSize 每页大小
     */
    fun getPersonalFriendCircleList(account: String, currentPage: Int, pageSize: Int): Map<Any?, Any?>?


    /**
     * 上传照片
     * @param account 上传账号
     * @param file 上传文件
     */
    fun uploadImage(account: String, file: MultipartFile?): String?

    /**
     * 发送朋友圈
     * @param whoPublish 发送朋友圈的账号
     * @param msg 朋友圈发送的信息内容
     * @param location 发送朋友圈的当前地址
     * @param timestamps 发送朋友圈的时间
     */
    fun sendFriendCircleItem(whoPublish: String, msg: String, location: String?, timestamps: String): Map<Any?, Any?>

    /**
     * 删除朋友圈
     * @param whoPublish 发送朋友圈的账号
     * @param conversationId 朋友圈唯一id
     */
    fun deleteFriendCircleItem(whoPublish: String, conversationId: String): Map<Any?, Any?>?

    /**
     * 点赞朋友圈
     * @param account 账号
     * @param conversationId 对话id
     */
    fun loveFriendCircleItem(account: String, conversationId: String): Map<Any?, Any?>?

    /**
     * 取消点赞朋友圈
     * @param account 账号
     * @param conversationId 对话id
     */
    fun unLoveFriendCircleItem(account: String, conversationId: String): Map<Any?, Any?>?

    /**
     * 评论朋友圈
     * @param account 评论账号
     * @param conversationId 评论对话id
     * @param msg 评论内容
     * @param timestamps 评论时间
     */
    fun commitFriendCircleItem(account: String, conversationId: String, msg: String, timestamps: String): Map<Any?, Any?>?

    /**
     * 评论朋友圈中的评论
     * @param account 评论账号
     * @param conversationId 评论对话id
     * @param msg 评论内容
     * @param timestamps 评论时间
     * @param toWho 对人的评论，他人账号
     */
    fun commitFriendCircleItemToWho(account: String, conversationId: String, msg: String, timestamps: String, toWho: String): Map<Any?, Any?>?

    /**
     * 删除对朋友圈的评论
     * @param commitId 评论id
     * @param conversationId 对话id
     */
    fun deleteCommitFriendCircleItem(conversationId: String, commitId: String): Map<Any?, Any?>?

    /**
     * 获取当前朋友圈的评论
     * @param conversationId 朋友圈id
     */
    fun getConversationCommit(conversationId: String):  Map<Any?, Any?>?
}